package model

import (
	"context"
	"service/ctrl"
	"service/model/mod"

	comm "gitee.com/cloudapex/protos/comm/pb"
	gpb "gitee.com/cloudapex/protos/crm_base/pb"
	grpc "google.golang.org/grpc"
)

var ManaProjConf manaProjConf

type manaProjConf struct {
	cli gpb.ManaProConfSerClient
}

func init() {
	ctrl.GCon.RegistClienter(mod.GCONN_CRM_BASE, func(c *grpc.ClientConn) {
		ManaProjConf.cli = gpb.NewManaProConfSerClient(c)
	})
}

//说明：根绝UIds批量查询员工信息,返回存在的员工信息列表
//参数：1.UserIds 用户ID
func (this *manaProjConf) GetUserManaInfo(ctx context.Context, in *gpb.UserIdsReq) (*gpb.ManaProConfListRes, error) {
	return this.cli.GetUserManaInfo(ctx, in)
}

//说明：获取配置信息列表
//参数：1.ProParam 业务项目设置信息（主表）
func (this *manaProjConf) GetManaProParamList(ctx context.Context, in *gpb.ManaProConfReq) (*gpb.ManaProConfListRes, error) {
	return this.cli.GetManaProParamList(ctx, in)
}

//说明：获取配置信息列表
//参数：1.ProParam 业务项目设置信息（主表）
func (this *manaProjConf) GetManaProWheParamList(ctx context.Context, in *gpb.ManaProWheConfReq) (*gpb.ManaProConfListRes, error) {
	return this.cli.GetManaProWheParamList(ctx, in)
}

//说明：获取职能配置信息列表（子表）
//参数：1.ManagProConfig 项目设置信息
func (this *manaProjConf) GetJoinInfo(ctx context.Context, in *gpb.ManaReqIds) (*gpb.ManaProJoinRes, error) {
	return this.cli.GetJoinInfo(ctx, in)
}

//说明：更改单条配置信息
//参数：1.ProParam 项目设置信息
func (this *manaProjConf) EditManaProParam(ctx context.Context, in *gpb.ManagPidInfo) (*comm.BaseRes, error) {
	return this.cli.EditManaProParam(ctx, in)
}

//说明：移除单条职能项目配置
//参数：1.comm.BaseReq ID
func (this *manaProjConf) DelectManaProParam(ctx context.Context, in *gpb.ManagPidInfo) (*comm.BaseRes, error) {
	return this.cli.DelectManaProParam(ctx, in)
}

//说明：查询单条职能项目配置
//参数：1.ManagProConfig 项目设置信息
func (this *manaProjConf) SelectManaProParam(ctx context.Context, in *gpb.ManagProConfig) (*gpb.ManaProConfigRes, error) {
	return this.cli.SelectManaProParam(ctx, in)
}

//说明：添加职能项目配置(主表添加)
//参数：1.ManagProConfig 项目设置信息
func (this *manaProjConf) AddManaProParam(ctx context.Context, in *gpb.ManagProConfig) (*comm.BaseRes, error) {
	return this.cli.AddManaProParam(ctx, in)
}
